Thema Datum  Von Nutzer Rating
Antwort
05.01.2012 20:49:57 joerg
NotSolved
05.01.2012 21:55:32 Heiko
NotSolved
05.01.2012 21:55:32 Heiko
NotSolved
05.01.2012 22:33:49 Gast13788
NotSolved
05.01.2012 22:40:26 joerg
NotSolved
06.01.2012 08:54:52 Heiko
*****
NotSolved
Rot Function erzeugt ein Datenfeld--> Rückgabe über Functionnamen
08.01.2012 21:45:41 joerg
NotSolved
09.01.2012 00:16:00 Heiko
*****
Solved
09.01.2012 20:44:15 joerg
Solved
09.01.2012 21:24:54 Heiko
NotSolved

Ansicht des Beitrags:
Von:
joerg
Datum:
08.01.2012 21:45:41
Views:
1421
Rating: Antwort:
  Ja
Thema:
Function erzeugt ein Datenfeld--> Rückgabe über Functionnamen

Hallo Heiko,
vielen Dank für deine ausführliche Antwort!!  Da hast du dir ja echt Mühe gegeben. Jetzt ist mir einiges klarer geworden. Ich habe die Rückgabe eines Datenfeldes per Function dazu gebraucht um aus einer Dezimalzahl eine Dualzahl zu machen. Nach langem Probieren bekomme ich das Programm nicht zum Laufen, obwohl ich die Änderungen eingebaut habe, die du vorgeschlagen hast. Ich habe auch deine Erläuterungen bezüglich Datenfeldübergabe in einem einfachen Testprogramm überprüft und da funktioniert alles. Das habe ich dann in meinem Dualzahlprogramm auch genauso gemacht - aber es läuft nicht.

Es wäre sehr nett wenn du dir den Code mal ansehen könntest - ich hoffe, daß es dir nicht zu lästig ist?

Es kommt es zu einem Laufzeitfehler 13: "Typen unverträglich" in dieser Zeile (bei "End Function") :

'Werte zurückgeben über FunctionNamen "dualerzeugen"
dualerzeugen = t
End Function

-------------------------------------------------------------------------------

hier der ganze Code:

-------------------------------------------------------------------------------

Public i, n, s As Integer
Sub Dualzahlerzeugen()
Dim r, e() As Integer

'einlesen
r = Range("c2")
'das Datenfeld "e" mit der Funktion "dualerzeugen" füllen
e = dualerzeugen(r)

'ausgeben, 'Startzelle
s = 5
For i = o To n
Cells(5 + i, 2) = "2^" & i
Cells(5 + i, 3) = e(i)
Next
End Sub

Function dualerzeugen(r) As Variant
Dim t(), z() As Integer
'n bestimmen
i = 0
Do Until (2 ^ i > r)
    i = i + 1
Loop
n = i - 1
' t(), z(), e() dimensionieren
ReDim t(n)
ReDim z(n + 1)
ReDim e(n)
' t() mit Nullen füllen
For i = 0 To n
    t(i) = 0
Next

Do Until (r = 0)
    i = 0
    Do
        z(i) = 2 ^ i
        i = i + 1
    Loop Until (z(i - 1) > r)
    r = r - z(i - 2)
    't() mit 1 füllen, da wo eine hingehört
    t(i - 2) = 1
Loop
'Werte zurückgeben über FunctionNamen "dualerzeugen"
dualerzeugen = t
End Function

Ich wünsche dir noch einen schönen Abend und bedanke mich recht herzlich für deine Hilfe!

Gruß, Jörg


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
05.01.2012 20:49:57 joerg
NotSolved
05.01.2012 21:55:32 Heiko
NotSolved
05.01.2012 21:55:32 Heiko
NotSolved
05.01.2012 22:33:49 Gast13788
NotSolved
05.01.2012 22:40:26 joerg
NotSolved
06.01.2012 08:54:52 Heiko
*****
NotSolved
Rot Function erzeugt ein Datenfeld--> Rückgabe über Functionnamen
08.01.2012 21:45:41 joerg
NotSolved
09.01.2012 00:16:00 Heiko
*****
Solved
09.01.2012 20:44:15 joerg
Solved
09.01.2012 21:24:54 Heiko
NotSolved